空间关系 Sample详情

最后更新时间:2020年12月11日

空间关系是对空间要素的拓扑关系的判断,包括相邻、相交、相离等基本的拓扑关系。空间关系是GIS空间查询、分析等应用的基础。

针对几何要素的空间关系分析计算,主要通过API程序包com.zondy.mapgis.geometry下的GeometryOperator类接口实现:

接口 说明
GeometryOperator.equals() 相同
GeometryOperator.crosses() 穿越相交
GeometryOperator.contains() 包含
GeometryOperator.covers() 覆盖
GeometryOperator.coveredBy() 被覆盖
GeometryOperator.disjoint() 相离
GeometryOperator.intersects() 相交
GeometryOperator.touches() 相接
GeometryOperator.difference() 求差
GeometryOperator.intersection() 求交
GeometryOperator.symDifference() 求对称差
GeometryOperator.union() 求并
GeometryOperator.within() 点在区内

具体实现方法如下:

1

空间关系计算几何对象准备

在进行空间关系运算之前,首先需要准备进行计算的空间几何对象Geometry,获取方法可参考缓冲分析。然后调用对应的接口即可实现。

2

构建空间关系分析对象

空间关系计算相关接口是由API程序包为com.zondy.mapgis.geometry中空间几何操作类GeometryOperator类提供的。

GeometryOperator geometryOperator = new GeometryOperator();

3

空间关系计算

调用对应接口实现各种空间关系判别。

GeometryOperator.contains(currentGeometry1, currentGeometry2, mTolerance);
GeometryOperator.crosses(currentGeometry1, currentGeometry2, mTolerance);
GeometryOperator.disjoint(currentGeometry1, currentGeometry2, mTolerance);
GeometryOperator.equals(currentGeometry1, currentGeometry2, mTolerance);
GeometryOperator.overlaps(currentGeometry1, currentGeometry2, mTolerance);
GeometryOperator.touches(currentGeometry1, currentGeometry2, mTolerance);
GeometryOperator.within(currentGeometry1, currentGeometry2, mTolerance);

其他空间关系运算接口请参考com.zondy.mapgis.geometry.GeometryOperator类,可根据实际需求选择接口实现。

示例效果如下所示:

空间关系.png